let fn = undefined;

//↓代码执行到这里时,发现要赋的值是一个对象,So开辟一个堆内存空间,
// 然后开始挨个存储对象里的键值对
// fn:undefined
// 然后把堆内存的地址赋给paramObj
let paramObj = {
  fn // fn:undefined
};

function abc(paramObj){
  return () => paramObj.fn();
}

let x = abc(paramObj);

fn = () => console.log('fnxxxx');
// 截止到这一行都不会报错

// 但↓一旦运行就会报错
x();
